<?php
/**
 * Usage.php
 *
 * @package reepu.com
 * @version {$Id$}
 * @copyright 2009-2018 Shanghai Reepu Information Tech. Co., Ltd.
 * @license Commercial
 * @author Boolean since.
 * @datetime 2018-12-02 21:39
 * =================================================================
 * 版权所有 (C) 2009-2018 Reepu.com，并保留所有权利。
 * 网站地址:http://www.reepu.com/
 * -----------------------------------------------------------------
 * 您只能在不用于商业目的的前提下对程序代码进行修改和使用；
 * 不允许对程序代码以任何形式任何目的的再发布。
 * =================================================================
 */

namespace Reepu\Phalcon\Swoole;

class Usage
{
    private $version = 3.1;

    public function __construct()
    {
        $this->logo();
    }

    public function version() {
        return $this->version;
    }

    public function index()
    {
        echo <<<HELPER_INDEX
    欢迎使用为高性能而生的 Swoole Server 当前版本: {$this->version}

    使用:
    ./run http [操作] [选项]
    
    操作:
    start       启动服务
    stop        停止服务
    restart     重启服务
    
    helper      查看命令的帮助信息\n
    有关某个操作的详细信息 请使用 helper 命令查看
    如查看 start 操作的详细信息 请输入 ./run server help start\n
HELPER_INDEX;
    }

    public function start()
    {
        echo <<<HELPER_START
    操作:
    ./run http start
    简介:
    执行本命令可以启动 可选的操作参数如下\e[0m
    参数:
HELPER_START;
    }

    public function stop()
    {
        echo <<<HELPER_STOP
    操作:
    ./run http stop
    简介:
    执行本命令可以停止 可选的操作参数如下
    参数:
HELPER_STOP;
    }

    public function restart()
    {
        echo <<<HELPER_RESTART
    操作:
    ./run http restart
    简介:
    执行本命令可以启动 可选的操作参数如下
    参数:
HELPER_RESTART;
    }

    public function logo()
    {
        echo <<<LOGO

LOGO;
    }

    /**
     * 检测环境依赖
     * @param array $checks
     * @return bool
     */
    public function check($checks = [])
    {
        foreach ($checks as $check) {
            if(!extension_loaded($check)) {
                echo "{$check} extension has not been installed,";
                echo "Please run pecl install {$check} ". PHP_EOL;
                return false;
            } else {
                echo "{$check}  Version：" . phpversion($check) . PHP_EOL;
            }
        }

        return true;
    }
}